﻿<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="System.Collections.Generic" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    监控分析报告列表
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <%
        List<int> years = (List<int>)ViewData["years"];
        int year = (int)ViewData["year"];
        IEnumerable<AnalysisReporting> reportings = (IEnumerable<AnalysisReporting>)ViewData["reportings"];
        IEnumerable<User> analyzers = (IEnumerable<User>)ViewData["analyzers"];
    %>

    <div class="screen_area">
      <form method="get" action="">
      选择年份：
      <select name="year" style="width:120px;" onchange="submit();">
      <%foreach (int y in years){%>
          <option value="<%=y %>" <%if (y == year) { %>selected="selected"<%} %>><%=y %>年</option>
      <%} %>
      </select>
      </form>
    </div>
    
    <table id="spdata" cellpadding="4" cellspacing="0" class="com_from_table3" style="vertical-align:middle;">
        <tr>
            <th style="width:60px;">报告时间</th>
            <th style="width:192px;">公司</th>
            <th style="width:128px;">堆场\尾矿库</th>
            <th>报告人</th>
            <th>完成时间</th>
            <th>完成质量</th>
            <th>报告状态</th>
            <th>&nbsp;</th>
        </tr>
        <%foreach (AnalysisReporting r in reportings)
          { %>
        <tr>
            <td class="lab" style="text-align:center;"><%=r.date.Year + "-" + r.date.Month %></td>
            <td style="padding-left:0.8em;"><%=r.FactoryName %></td>
            <td style="padding-left:0.8em;"><%=r.StackName %></td>
            <td style="padding-left:0.8em;"><div id="user<%=r.id %>"><%=r.Analyzer != null ? r.Analyzer.RealName + "(" + r.Analyzer.Name + ")" : "" %></div><div id="userSelect<%=r.id %>"></div></td>
            <td style="text-align:center;"><div id="finishedTime<%=r.id %>"><%=r.finishedTime.HasValue ? r.finishedTime.Value.Year + "-" + r.finishedTime.Value.Month + "-" + r.finishedTime.Value.Day : "" %></div><input name="date" id="inputFinishedTime<%=r.id %>" value='<%=r.finishedTime.HasValue ? r.finishedTime.Value.Year + "-" + r.finishedTime.Value.Month + "-" + r.finishedTime.Value.Day : "" %>' size="8" style="display:none" /></td>
            <td style="text-align:center;"><div id="quality<%=r.id %>"><%=r.quality %></div><input id="inputQuality<%=r.id %>" style="display:none" type="text" size="5" value="<%=r.quality %>" /></td>
            <td style="padding-left:0.8em;"><%=r.status == 0 ? "未分配" : (r.status == 1 ? "未完成" : (r.status == 2 || r.status == 3 ? "已完成" : ""))%><%if (r.status == 2 || r.status == 3){ %> (<a href="/Reporting/View/<%=r.id %>">查看报告</a>)<%} %></td>
            <%if (r.status == 0 || r.status == 1 || r.status == 2)
              { %>
            <td style="padding-left:0.8em;">
                <div id="originalOp<%=r.id %>">
                    <a href="javascript:void(0);" onclick="showAnalyzers(<%=r.id %>);">分配</a>
                    <%if (r.status == 2) { %>
                    <a style="margin-left:15px" href="javascript:void(0);" onclick="modify(<%=r.id %>);">修改</a>
                    <a style="margin-left:15px" href="javascript:void(0);" onclick="publish(<%=r.id %>);">发布</a>
                    <%} %>
                </div>
                <div id="submitOp<%=r.id %>" style="display:none">
                    <a href="javascript:void(0);" onclick="submitDistForm(<%=r.id %>);">提交</a>
                    <a style="margin-left:15px" href="javascript:void(0);" onclick="cancelDistForm(<%=r.id %>);">取消</a>
                </div>
                <div id="submitOp2<%=r.id %>" style="display:none">
                    <a href="javascript:void(0);" onclick="submitPublishForm(<%=r.id %>);">提交</a>
                    <a style="margin-left:15px" href="javascript:void(0);" onclick="cancelPublishForm(<%=r.id %>);">取消</a>
                </div>
            </td>
            <%} else if (r.status == 3) { %>
            <td style="padding-left:0.8em;">已发布</td>
            <%} %>
        </tr>
        <%} %>  
    </table>
    <form id="distForm" action="/Reporting/Distribute" method="post">
        <input type="hidden" name="id" />
        <input type="hidden" name="userId" />
        <input type="hidden" name="finishedDate" />
    </form>

    <form id="publishForm" action="/Reporting/Publish" method="post">
        <input type="hidden" name="id" />
        <input type="hidden" name="quality" />
    </form>

    <form id="modifyForm" action="/Reporting/Modify" method="post">
        <input type="hidden" name="id" />
    </form>

    <script language="javascript" type="text/javascript">
        $('input[name="date"]').datepicker({ changeMonth: true, changeYear: true });
        
        function showAnalyzers(id) {
            <%
            string htmlStr = "<select name='userId'>";
            foreach (User u in analyzers)
            {
                htmlStr += "<option value='" + u.Id + "'>" + u.RealName + "(" + u.Name + ")" + "</option>";
            }
            htmlStr = htmlStr + "</select>";
            %>
            var htmlStr = "<%=htmlStr %>";
            $("#userSelect" + id).html(htmlStr);

            $("#userSelect" + id).css("display", "");
            $("#user" + id).css("display", "none");
            $("#finishedTime" + id).css("display", "none");
            $("#inputFinishedTime" + id).css("display", "");
            $("#originalOp" + id).css("display", "none");
            $("#submitOp" + id).css("display", "");
        }

        function submitDistForm(id) {
            var form = $("#distForm");
            var userId = $("#userSelect" + id + " select option:selected").first().val();
            var finishedDate = $("#inputFinishedTime" + id).val();

            if (userId == null || userId == "" || userId == undefined) {
                alert("请选择分析人员。");
                $("#userSelect" + id + " select").first().focus();
                return;
            }

            if (finishedDate == null || finishedDate == "" || finishedDate == undefined) {
                alert("请选择完成日期。");
                $("#inputFinishedTime" + id).focus();
                return;
            }


            $("#distForm input[name='id']").val(id);
            $("#distForm input[name='userId']").val(userId);
            $("#distForm input[name='finishedDate']").val(finishedDate);
            $("#distForm").submit();
        }

        function cancelDistForm(id) {
            $("#userSelect" + id).css("display", "none");
            $("#user" + id).css("display", "");
            $("#originalOp" + id).css("display", "");
            $("#submitOp" + id).css("display", "none");
            $("#finishedTime" + id).css("display", "");
            $("#inputFinishedTime" + id).css("display", "none");
        }

        function modify(id) {
            if (confirm("确定要返回报告给分析人员修改吗？"))
            {
                $("#modifyForm input[name='id']").val(id);
                $("#modifyForm").submit();
            }
        }

        function publish(id) {
            $("#quality" + id).css("display", "none");
            $("#inputQuality" + id).css("display", "");
            $("#originalOp" + id).css("display", "none");
            $("#submitOp2" + id).css("display", "");
        }

        function submitPublishForm(id) {
            var quality = $("#inputQuality" + id).val();

            if (quality == null || quality == "" || quality == undefined) {
                alert("请填写报告质量。");
                $("#inputQuality" + id).focus();
                return;
            }


            $("#publishForm input[name='id']").val(id);
            $("#publishForm input[name='quality']").val(quality);
            $("#publishForm").submit();
        }

        function cancelPublishForm(id) {
            $("#inputQuality" + id).css("display", "none");
            $("#quality" + id).css("display", "");
            $("#originalOp" + id).css("display", "");
            $("#submitOp2" + id).css("display", "none");
        }

        //函数说明：合并指定表格（表格id为_w_table_id）指定列（列数为_w_table_colnum）的相同文本的相邻单元格
        //参数说明：_w_table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ，此参数应为 #data 
        //参数说明：_w_table_colnum 为需要合并单元格的所在列。为数字，从最左边第一列为1开始算起。
        function _w_table_rowspan(_w_table_id, _w_table_colnum) {
            _w_table_firsttd = "";
            _w_table_currenttd = "";
            _w_table_SpanNum = 0;
            _w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")");
            _w_table_Obj.each(function (i) {
                if (i == 0) {
                    _w_table_firsttd = $(this);
                    _w_table_SpanNum = 1;
                } else {
                    _w_table_currenttd = $(this);
                    if (_w_table_firsttd.text() == _w_table_currenttd.text()) {
                        _w_table_SpanNum++;
                        _w_table_currenttd.hide(); //remove();
                        _w_table_firsttd.attr("rowSpan", _w_table_SpanNum);
                    } else {
                        _w_table_firsttd = $(this);
                        _w_table_SpanNum = 1;
                    }
                }

                _w_table_firsttd.css("vertical-align", "middle");
            });
        }

        //函数说明：合并指定表格（表格id为_w_table_id）指定行（行数为_w_table_rownum）的相同文本的相邻单元格
        //参数说明：_w_table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="data" ，此参数应为 #data 
        //参数说明：_w_table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。
        //          如果为数字，则从最左边第一行为1开始算起。
        //          "even" 表示偶数行
        //          "odd" 表示奇数行
        //          "3n+1" 表示的行数为1、4、7、10.......
        //参数说明：_w_table_maxcolnum 为指定行中单元格对应的最大列数，列数大于这个数值的单元格将不进行比较合并。
        //          此参数可以为空，为空则指定行的所有单元格要进行比较合并。
        function _w_table_colspan(_w_table_id, _w_table_rownum, _w_table_maxcolnum) {
            if (_w_table_maxcolnum == void 0) { _w_table_maxcolnum = 0; }
            _w_table_firsttd = "";
            _w_table_currenttd = "";
            _w_table_SpanNum = 0;
            $(_w_table_id + " tr:nth-child(" + _w_table_rownum + ")").each(function (i) {
                _w_table_Obj = $(this).children();
                _w_table_Obj.each(function (i) {
                    if (i == 0) {
                        _w_table_firsttd = $(this);
                        _w_table_SpanNum = 1;
                    } else if ((_w_table_maxcolnum > 0) && (i > _w_table_maxcolnum)) {
                        return "";
                    } else {
                        _w_table_currenttd = $(this);
                        if (_w_table_firsttd.text() == _w_table_currenttd.text()) {
                            _w_table_SpanNum++;
                            _w_table_currenttd.hide(); //remove();
                            _w_table_firsttd.attr("colSpan", _w_table_SpanNum);
                        } else {
                            _w_table_firsttd = $(this);
                            _w_table_SpanNum = 1;
                        }
                    }
                });
            });
        }


	$(document).ready(function(){		
		_w_table_rowspan("#spdata",1);
        _w_table_rowspan("#spdata",2);
	});
    </script>
</asp:Content>
